package com.qding.park.manager.app.queue.handle;

import org.springframework.beans.factory.annotation.Autowired;

import com.alibaba.fastjson.JSONObject;
import com.qding.park.common.core.cache.service.CacheServiceFacade;
import com.qding.park.common.core.constant.CacheKeyThree;
import com.qding.park.common.core.exceptions.IExceptionHandle;
import com.qding.park.manager.pojo.queue.QueueMsg;

/**
 * @ClassName: AbstractOrderHandle
 * @Description: 消息上报队列 抽象类
 * @author Comsys-Administrator
 * @date 2016年10月29日 下午2:37:48
 *
 */
public abstract class AbstractReportHandle extends AbstractHandle {

	/**
	 * @Fields queue_name : TODO（队列名称）
	 */
	private static final String queue_name = CacheKeyThree.QUEUE_REPORT;

	/**
	 * @Fields exceptionHandle : TODO（异常处理）
	 */
	@Autowired
	private IExceptionHandle exceptionHandle;

//	/**
//	 * @Fields cacheServiceFacade : TODO（缓存操作）
//	 */
//	@Autowired
//	private CacheServiceFacade cacheServiceFacade;

	@Override
	public void handle(QueueMsg msg) {

		try {
			JSONObject data = (JSONObject) msg.getData();
			_log.info("将要处理:" + data + ",type:" + msg.getEventType());
			actualHandle(msg);
			_log.info("完成处理:" + data + ",type:" + msg.getEventType());
		} catch (Exception e) {
			exceptionHandle.handle(e);
			exceptionHandle(msg,queue_name);
//			try {
//				// 继续入队列
//				cacheServiceFacade.msg_queue_push(msg, queue_name);
//			} catch (Exception e1) {
//				_log.error(e1, e1);
//			}
		}
	}

}
